前面我們簡述了JavaScript中的數值型別。接下來,我們將深入探討JavaScript中的運算式(Expressions)以及一些常見的運算子(Operators)。
敘述句是用來執行操作、改變程式的狀態,且不會產生『值』。變數宣告、賦值、迴圈和if判斷式...都屬於敘述句。
let x; // 宣告一個變數 x
x = 5; // 賦值敘述句,將 5 賦給變數 x
運算式是一個有效的代碼單元,其特徵是會產生『值』
5 + 3; // 數學運算,返回值 8
fruits[0]; // 陣列索引運算式,返回陣列中的元素
person.name; // 物件屬性讀取運算式,返回物件中的屬性值
運算子控制了運算式的行為,並決定了運算式的計算結果。
由於運算子種類繁多,以下會依照性質分類,並針對常見運算子進行解釋:
const now = 2023;
const ageJeremy = now - 1996; // 減法運算,結果為27
符號方面:加(+)、減(-)、乘(*)、除(/)以及較為特別的次方(**)和取餘數(%)
除了數值運算外,加(+)也可用於連結字串
const firstName = 'Jeremy'
const lastName = 'Hung'
console.log (firstName + lastName) // JeremyHung
let x = 10 + 5 // 等號的作用就是『賦值』
指派運算子還能搭配數學運算子,進行計算
let x = 10 + 5; // 15
x += 10; // 意思是x = x + 10
console.log(x) //25
let x = 10;
let y = 15;
console.log(x > y) //結果為False
和數學一樣,除了大於(>)外還有<、>=、<=等比較運算子
console.log (x >= 10); // 結果為True
除比大小外,比較運算子也可用於查看兩個變數是否相等,其中雙等號(==)和三等號(===)比較結果是截然不同的
console.log(10 == '10') // True
console.log(10 === '10') // False
當使用比較運算子查看數字10和字串10是否相等時,使用雙等號和三等號會有不同結果
為什麼呢?
當使用雙等號(==)時,JavaScript會執行**『自動轉型』**,也因此才會導致結果獲得True
為了避免這種『自動轉型』所導致的奇怪問題,後續才新增了三等號(===)用法
在使用三等號時,除非『數值』與『型態』都相等,才會判斷相同。
除了相等外,還有『不等於』,其用法也有兩種『!=』和『!==』兩種
運作模式和等號一樣,!=是會執行自動轉型,!==則不會。
篇幅關係,下篇會再來講解剩餘的四種運算子!